--[[
文件名: oc_util.lua
描述: 开放式电脑工具包
作者: 671643387@qq.com
创建日期: 2025-09-20
]]

local component = require("component")

local oc_util = {}

-- 获取设备表
-- @param filter    过滤参数
-- @return 过滤后的设备表
oc_util.all_devices = function(filter)
    local devices = {}
    for address, name in component.list(filter) do
        devices[address] = name
    end
    return devices
end

-- 获取指定地址的设备
-- @param address   设备地址
-- @return 设备
oc_util.get_device = function(address)
    return component.proxy(address)
end

-- 查找指定设备所在面
-- @param transposer    访问器
-- @param name          设备名字
-- @return 设备所在面
oc_util.find_side_by_name = function(transposer, name)
    for i = 0, 5 do
        if transposer.getInventoryName(i) == name then
            return i
        end
    end
    return nil
end

-- 保存文件
-- @param filename  文件名
-- @param content   文件内容
-- @return 是否成功
oc_util.save_file = function(filename, content)
    local file = io.open(filename, "w")
    if file ~= nil then
        file:write(content)
        file:flush()
        file:close()
        return true
    end
    return false
end

-- 读取文件
-- @param filename  文件名
-- @return 文件内容
oc_util.read_file = function(filename)
    local file = io.open(filename, "r")
    if file ~= nil then
        local content = file:read("*a")
        file:close()
        return content
    end
    return nil
end

return oc_util
